package com.gzxw.mogublog.admin.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gzxw.mogublog.commons.entity.Tag;
import com.gzxw.mogublog.utils.R;
import com.gzxw.mogublog.xo.service.TagService;
import com.gzxw.mogublog.xo.vo.TagVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/tag")
public class TagController {

    @Autowired
    private TagService tagService;

    // 获取标签列表
    @PostMapping("/getList")
    public R getList(@RequestBody TagVO tagVO) {

        IPage<Tag> pageList =  tagService.getList(tagVO);
        HashMap<String, Object> map = new HashMap<>();
        map.put("records",pageList.getRecords());
        map.put("total",pageList.getTotal());
        map.put("size",pageList.getSize());
        map.put("current",pageList.getCurrent());

        return R.success("返回成功",map);
    }


    // 添加标签
    @PostMapping("/add")
    public R add(@RequestBody TagVO tagVO) {

       String message =  tagService.add(tagVO);

       return R.success("200",message);
    }

    // 编辑标签
    @PostMapping("/edit")
    public R edit(@RequestBody TagVO tagVO) {

       String message = tagService.edit(tagVO);

       return R.success("200",message);
    }

    // 批量删除标签
    @PostMapping("/deleteBatch")
    public R deleteBatch(@RequestBody List<TagVO> tagVOList) {

        String message = tagService.deleteBatch(tagVOList);

        return R.success("200",message);
    }

    // 顶置标签
    @PostMapping("/stickTag")
    public R stickTag(@RequestBody TagVO tagVO) {

        String message = tagService.stickTag(tagVO);

        return R.success("200",message);
    }

    @PostMapping("/tagSortByClickCount")
    public R tagSortByClickCount() {

        String message = tagService.tagSortByClickCount();

        return R.success("200",message);
    }

    // 通过引用量排序标签
    @PostMapping("/tagSortByCite")
    public R tagSortByCite() {

       String message = tagService.tagSortByCite();

        return R.success("200",message);
    }

}
